package com.example.demo;

import org.springframework.web.servlet.HandlerInterceptor;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

public class LoginInter implements HandlerInterceptor {
    /**
     * 该方法返回一个布尔类型的值
     * 如果为真登录成功(验证通过),继续执行后序流程
     * 反之登录失败,后面的流程将不再执行
     */
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {

        //false表示有会话信息得到会话信息
        //没有会话信息也不需要创建会话信息
        HttpSession session = request.getSession(false);
        if(session != null && session.getAttribute("user") != null){
            //说明用户登录成功
            return true;
        }
        //否则登录失败
        //登录失败的情况可以做很多事情
        //比如跳转到登录页面或者返回一个401/403没有权限的状态码
        //具体怎么做取决于产品需求
        //下面表示重定向,跳转到登录页面
//        response.sendRedirect("/login.html");
//        response.setStatus(401);
        return false;

    }
}
